#if !defined(_Iso7816Plugin_H)
#define _Iso7816Plugin_H

#include <scott/Plugin.h>
#include <winscard.h>
#include <iostream>

CREATE_ALIAS( Iso7816Plugin );

class DECLARATION_DLL Iso7816Plugin :	public Plugin
{

public:

	Iso7816Plugin();

	virtual void InitializePlugin(PluginSpMapSp plugins, INameResolutorSp nameResolutor);

	virtual void ExecuteCommand(CommandSp command);

	virtual SVectorSp ExecutePcscTransmit( string input );
	virtual void SetCommonOutputs(BYTE sw1, BYTE sw2);

	// Plugin Command Handler Declarations
	virtual void Iso7816_GetResponse();
	virtual void Iso7816_ReadBinary();
	virtual void Iso7816_Select();
	virtual void Iso7816_Transmit0();
	virtual void Iso7816_UpdateBinary();
	virtual void Iso7816_Verify();

};

#endif  // _Iso7816Plugin_H

